package gt.service.bound;

import gt.entity.bound.Bound;

import java.util.List;

/**
 * 微信用户绑定门店表
 * @author yangsitong
 */
public interface BoundService {

	// Methods

   /**
	* 添加微信用户绑定门店表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	* @return Long boundId 添加后的数据库主键值
	*/
	public Long add(Bound bound);

   /**
	* 删除微信用户绑定门店表
	* @param boundId 主键值
	*/
	public void delete(Long boundId);

   /**
	* 更新微信用户绑定门店表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	*/
	public void edit(Bound bound);

   /**
	* 主键查询微信用户绑定门店表
	* @param bound 参数实体
	* @return Bound 实体
	*/
	public Bound queryById(Long boundId);

   /**
	* 根据条件查询微信用户绑定门店表列表
	* @param boundId 绑定Id
	* @param agentId 代办点Id
	* @param openId 微信Id
	* @param carrierId 快递公司Id
	* @param carrierName 快递公司名称
	* @param boundStatus 绑定状态1:已绑定2:已解绑
	* @param createTime 添加时间 
	* @param updateTime 更新时间
	* @return List<Bound> 实体List
	*/
	public List<Bound> queryList(Bound bound);

    public List<Bound> queryByOpenId(String openId);

	public Bound queryByOpenIdAndAgentId(String openId, Long receiveAgentId);

	public List<Bound> queryListByCarrierName(String carrierName);

	/**
	* 根据条件查询微信用户绑定门店表列表
	* @param HashMap 参数map
	* @return List<Bound> 实体List
	*/
	public List<Bound> queryListByCarrierName(Bound au, String name, String sort);

	public Bound queryByOpenIdAndCarrierSiteId(String openId, Long carrierSiteId);
	


}